gboolean send_expose)
{
GdkWindowObject *private = (GdkWindowObject *)window;
- GdkWindowImplIface *impl_iface;
if (private->paint_stack)
gdk_window_clear_backing_region (window, region);
if (private->redirect)
gdk_window_clear_backing_region_redirect (window, region);
- impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
-
- if (impl_iface->clear_region && clears_as_native (private))
- {
- cairo_region_t *copy;
- copy = cairo_region_copy (region);
- cairo_region_intersect (copy,
- private->clip_region_with_children);
-
-
- /* Drawing directly to the window, flush anything outstanding to
- guarantee ordering. */
- gdk_window_flush (window);
- impl_iface->clear_region (window, copy, send_expose);
-
- cairo_region_destroy (copy);
- }
- else
- {
- gdk_window_clear_backing_region_direct (window, region);
- if (send_expose)
- gdk_window_invalidate_region (window, region, FALSE);
- }
+ gdk_window_clear_backing_region_direct (window, region);
+ if (send_expose)
+ gdk_window_invalidate_region (window, region, FALSE);
}
}
GdkWindow *new_parent,
gint x,
gint y);
- void (* clear_region) (GdkWindow *window,
- cairo_region_t *region,
- gboolean send_expose);
void (* set_device_cursor) (GdkWindow *window,
GdkDevice *device,
return FALSE;
}
-static void
-gdk_window_x11_clear_region (GdkWindow *window,
- cairo_region_t *region,
- gboolean send_expose)
-{
- cairo_rectangle_int_t rect;
- int n_rects, i;
-
- n_rects = cairo_region_num_rectangles (region);
-
- for (i = 0; i < n_rects; i++)
- {
- cairo_region_get_rectangle (region, i, &rect);
- XClearArea (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window),
- rect.x, rect.y,
- rect.width, rect.height,
- send_expose);
- }
-}
-
static void
gdk_window_x11_raise (GdkWindow *window)
{
iface->set_background = gdk_window_x11_set_background;
iface->set_back_pixmap = gdk_window_x11_set_back_pixmap;
iface->reparent = gdk_window_x11_reparent;
- iface->clear_region = gdk_window_x11_clear_region;
iface->set_device_cursor = gdk_window_x11_set_device_cursor;
iface->get_geometry = gdk_window_x11_get_geometry;
iface->get_root_coords = gdk_window_x11_get_root_coords;